﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Lola.Persistencia
{
    public class AdministradorPersistenciaIncidencia
    {
        private static AdministradorPersistenciaIncidencia admInc;

        public static AdministradorPersistenciaIncidencia getInstanciaIncidencia()
        {
            if (admInc == null)
                admInc = new AdministradorPersistenciaIncidencia();
            return admInc;
        }

        public List<Incidencia> buscarIncidencias(string cod)
        {
             using (SEMINARIOIEntities contextSeminarioI = new SEMINARIOIEntities())
            {
                    var query = from p in contextSeminarioI.Incidencia
                                where p.cod==cod
                                select p;
                    List<Incidencia> inc = query.ToList();
                    return inc ;
             }
            
        }
        

        public void altaDeIncidencia(string cod,int numeroInc, DateTime fechaInc,string gravedad,string descrip,int prioridad)
        {
            using (SEMINARIOIEntities contextSeminarioI = new SEMINARIOIEntities())
            {

                Incidencia inc = new Incidencia();
                inc.cod = cod;
                inc.numeroInc = numeroInc;
                inc.fechInc = fechaInc;
                inc.gravedad = gravedad;
                inc.descrip = descrip;
                inc.prioridad = prioridad;
                inc.estado = "A";
                contextSeminarioI.AddObject("Incidencia", inc);
                contextSeminarioI.SaveChanges();
            }
        }

        public void bajaDeIncidencia(int numInc)
        {
            using (SEMINARIOIEntities contextSeminarioI = new SEMINARIOIEntities())
            {
                var query = from p in contextSeminarioI.Incidencia
                            where p.numeroInc== numInc
                            select p;
                Incidencia incidencia = query.First();
                //contextSeminarioI.DeleteObject(incidencia);
                //Actualizo el estado a C: CERRADA
                incidencia.estado = "C";
                contextSeminarioI.SaveChanges();
            }
        }

        public void modificarIncidencia( string cod,int numeroInc, DateTime fechaInc, string gravedad, string descrip, int prioridad, string estado)
        {
            using (SEMINARIOIEntities contextSeminarioI = new SEMINARIOIEntities())
            {
                var query = from p in contextSeminarioI.Incidencia
                            where p.numeroInc == numeroInc & p.cod==cod
                            select p;
                Incidencia incidencia = query.First();
                incidencia.gravedad = gravedad;
                incidencia.prioridad = prioridad;
                incidencia.fechInc = fechaInc;
                incidencia.descrip = descrip;
                incidencia.estado = estado;
                contextSeminarioI.SaveChanges();
                
            }
        }
    }
}
